/* vim: set syntax=cpp: */
#ifndef __QUEX_INCLUDE_GUARD__ASSERTS
#define __QUEX_INCLUDE_GUARD__ASSERTS

#ifdef QUEX_OPTION_ASSERTS
#   if ! defined (__QUEX_OPTION_PLAIN_C)
#       include <cassert>
#   else
#       include <assert.h>
#   endif
#   define  __quex_assert(X)              assert(X)
#   define  __quex_assert_no_passage()    do { QUEX_ERROR_EXIT("Illegal 'drop-into' other state"); } while ( 0 )
#   define  __quex_assert_msg(X, Y)       if( ! (X) ) do { QUEX_ERROR_EXIT(Y); } while ( 0 )
#   define  __QUEX_IF_ASSERTS(EXPRESSION) EXPRESSION
#else
#   define  __quex_assert(X)              /* no assert */
#   define  __quex_assert_msg(X, Y)       /* no assert, no message */
#   define  __quex_assert_no_passage()    /* no assert */
#   define  __QUEX_IF_ASSERTS(EXPRESSION) /* empty */
#endif

#define __QUEX_INCLUDE_INDICATOR__ASSERTS

#endif /* __QUEX_INCLUDE_GUARD__ASSERTS */

